// components/calculation/calculation.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    unitPrice: { // 接收传递过来的数据
      type: Number,
      value: 0,
    },
    num: { // 接收传递过来的num
      type: Number,
      value: 1,
    },
    tapIndex: { // 点击数量是，当前产品所属的大分类索引
      type: Number,
      value: 0,
    },
    goodIndex: { // 点击时当前购物车产品的索引
      type: Number,
      value: 0,
    },
    cartId: { // 购物车id
      type: String,
    },
  },

  /**
   * 组件的初始数据
   */
  data: {
     // 数量增减
     num: 1,
     minusStatus: 'disabled',
     totalPrice: 0, // 定制总价的计算
     isBox: false,
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /* 点击减号 */
    bindMinus: function () {
      var num = this.data.num;
      // 定制页面过来的商品单价
      var unitPrice = this.properties.unitPrice;
      // console.log(unitPrice)

      // 如果大于1时，才可以减
      if (num > 1) {
        num--;
      }
      // 只有大于一件的时候，才能normal状态，否则disable状态
      var minusStatus = num <= 1 ? 'disabled' : 'normal';
      // 将数值与状态写回
      this.setData({
        num: num,
        minusStatus: minusStatus,
        totalPrice: num * unitPrice,
      });

      // console.log(this.data.totalPrice)
      // 将数据传递过去
      this.triggerEvent("onBindMinus", {
        "totalPrice": this.data.totalPrice,
        "num": num,
        "tapIndex": this.properties.tapIndex, // 购物车分类索引
        "goodIndex": this.properties.goodIndex, // 购物车当前产品索引
        "cartId": this.properties.cartId, // 当前购物车id
      })
    },
    /* 点击加号 */
    bindPlus: function (e) {
      var num = this.data.num;
      // 定制页面过来的商品单价
      var unitPrice = this.properties.unitPrice;
      // console.log(unitPrice)

      // 数量最多可以选择9999件
      if (num < 9999) {
        num++;
      }
      // 只有大于一件的时候，才能normal状态，否则disable状态
      var minusStatus = num < 1 ? 'disabled' : 'normal';
      // 将数值与状态写回
      this.setData({
        num: num,
        minusStatus: minusStatus,
        totalPrice: num * unitPrice,
      });

      // console.log(this.data.totalPrice)
      // 将数据传递过去
      this.triggerEvent("onBindPlus", {
        "totalPrice": this.data.totalPrice,
        "num": num,
        "tapIndex": this.properties.tapIndex, // 购物车分类索引
        "goodIndex": this.properties.goodIndex, // 购物车当前产品索引
        "cartId": this.properties.cartId, // 当前购物车id
      })
    },
    /* 点击弹出输入数量 */
    bindManual: function (e) {
      //不弹出手动填入数量的input框
      // this.setData({
      //   isBox: !this.data.isBox,
      // })
    },

    // 关闭弹出框和点击取消
    closeBox: function (e) {
      this.setData({
        num:this.properties.num,
        isBox: false,        
      })
    },

    // 小程序输入框冒泡事件的解决
    empty: function (e) {

    },

    // 获取实时输入的数量
    getNum: function (e) {
      var value = e.detail.value;
      // 定制页面过来的商品单价
      var num = e.detail.value;
      console.log(e.detail.cursor)
      if(num==0||num==""){
        num=1;
      }
      this.setData({
        newNum:num,
      })
    },

    // 确认
    sureBox: function (e) {
      var num = this.data.newNum;
      if (num == 0||num == '') {
        this.setData({
          num: 1,
        })
        this.properties.num = 1;
        wx.showToast({
          title: '该宝贝不能减少了哦',
          icon: 'none',
        })
      }
      this.setData({
        isBox: !this.data.isBox,
      })

      var unitPrice = this.properties.unitPrice;
      this.setData({
        totalPrice: num * unitPrice,
        num: num,
        numNew:num,
      })

      console.log(this.data.totalPrice)
      // 将数据传递过去
      this.triggerEvent("onGetNum", {
        "totalPrice": this.data.totalPrice,
        "num": num,
        "tapIndex": this.properties.tapIndex, // 购物车分类索引
        "goodIndex": this.properties.goodIndex, // 购物车当前产品索引
        "cartId": this.properties.cartId, // 当前购物车id
      })
    },       
  },
  attached() {
    // 第二种方式通过组件的生命周期函数执行代码
    this.setData({
      num: this.properties.num,
      numNew:this.properties.num,
    })
    console.log('数量:' + this.properties.num)
  },

})
